package com.xuecheng.content.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.api.content.model.qo.QueryCourseBaseModel;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import com.xuecheng.content.entity.CourseBase;

/**
 * <p>
 * 课程基本信息 服务类
 * </p>
 *
 * @author itcast
 * @since 2021-10-07
 */
public interface CourseBaseService extends IService<CourseBase> {
    /**
     *todo 分页条件查询
     * @param params  -PageRequestParams  参数封装的的是要查寻得页数和每页条数,
     * @param model    - QueryCourseBaseModel 参数封装的是分页查询的条件,根据课程状态还是课程审核状态进行条件查询
     * @return PageVO 响应给前端的数据   封装着当前页面数据集合,总条数,当前页,每页条数
     *
     */

   PageVO queryCourseBaseList(PageRequestParams params, QueryCourseBaseModel model,Long companyId);

    /**
     * todo 课程信息新增
     * @param dto  新添加课程的信息
     * @return
     */
    CourseBaseDTO creatCourseBase(CourseBaseDTO dto);
    /**
     * todo 修改,根据Id查询修改
     * @param courseBaseId 课程的Id值
     * @param courseBaseId 公司的Id值
     * @return CourseBaseDTO
     */
     CourseBaseDTO getCourseById(Long courseBaseId,Long companyId) ;

    /**
     * todo 修改课程基础信息
     * @param courseBaseDTO 修改后的课程信息
     * @return
     */
     CourseBaseDTO modifyCourseResult( CourseBaseDTO courseBaseDTO);

    /**
     * todo 根据课程Id进行删除操作
     * @param courseBaseId  根据id修改
     * @param companyId   机构id 完成数据分隔
     */
    void removeCourseBase(Long courseBaseId,Long companyId);

    /**
     * todo 教学机构对课程进行审核提交
     * @param courseBaseId
     * @param companyId
     */
    void submitCourseBase(Long courseBaseId,Long companyId);

    /**
     * todo  课程审核
     * @param dto 前端传入要修改的数据
     */
    void approveCourse(CourseBaseDTO dto);
}
